package com.cy.service;

/**
 * @author tang
 * @data 2021/9/16
 * @apiNode
 */

import com.cy.factory.RempteFallBackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * 定义远程provider服务调用的service接口
 * @FeignClient  用于描述远程服务调用端口
 * name  为你要远程调用的服务名
 * contextId 为当前bean的名称,假设没有指定contextId,，默认会采用name属性作为bean的名称(一般用在多个接口调用同一个服务)
 * fallbackFactory用于定义服务调用超时等现象发生时,一种应对措施
 * feign方式默认支持负载均衡
 */
@FeignClient(name="sca-provider",contextId = "remoteProviderService",fallbackFactory = RempteFallBackFactory.class)
public interface RemoteProviderService {

    @GetMapping("/provider/echo/{msg}")
    String echoMessage(@PathVariable("msg") String msg);
}
